import axios from '../utils/axios';

const API_URL = 'http://localhost:8080';
// const API_URL = 'http://127.0.0.1:4523/m1/4721156-4373539-default';

export default {
  // 用户管理 API
  registerUser: (user) => axios.post(`${API_URL}/users/register`, user),
  loginUser: (credentials) => axios.post(`${API_URL}/users/login`, credentials),
  getUserInfo: (userId) => axios.get(`${API_URL}/users/${userId}`),
  updateUser: (userId, user) => axios.put(`${API_URL}/users/${userId}`, user),
  deleteUser: (userId) => axios.delete(`${API_URL}/users/${userId}`),

  // 订单管理 API
  createOrder: (order) => axios.post(`${API_URL}/orders`, order),
  getOrders: (userId) => axios.get(`${API_URL}/orders/${userId}`),
  getOrder: (orderId) => axios.get(`${API_URL}/orders/${orderId}`),
  updateOrderStatus: (orderId, newStatus) => axios.put(`${API_URL}/orders/${orderId}`, { newStatus }),
  deleteOrder: (orderId) => axios.delete(`${API_URL}/orders/${orderId}`),

  // 图书管理 API
  getBooks: (params) => axios.get(`${API_URL}/books`, { params }),
  getBook: (bookId) => axios.get(`${API_URL}/books/${bookId}`),
  addBook: (book) => axios.post(`${API_URL}/books`, book),
  updateBook: (bookId, book) => axios.put(`${API_URL}/books/${bookId}`, book),
  deleteBook: (bookId) => axios.delete(`${API_URL}/books/${bookId}`),

  // 商品分类管理 API
  getCategories: () => axios.get(`${API_URL}/categories`),
  getCategory: (categoryId) => axios.get(`${API_URL}/categories/${categoryId}`),
  addCategory: (category) => axios.post(`${API_URL}/categories`, category),
  updateCategory: (categoryId, category) => axios.put(`${API_URL}/categories/${categoryId}`, category),
  deleteCategory: (categoryId) => axios.delete(`${API_URL}/categories/${categoryId}`),

  // 轮播图管理 API
  getSliders: () => axios.get(`${API_URL}/sliders`),
  addSlider: (slider) => axios.post(`${API_URL}/sliders`, slider),
  updateSlider: (sliderId, slider) => axios.put(`${API_URL}/sliders/${sliderId}`, slider),
  deleteSlider: (sliderId) => axios.delete(`${API_URL}/sliders/${sliderId}`),

  // 评论与评分管理 API
  getReviews: (bookId) => axios.get(`${API_URL}/reviews/${bookId}`),
  addReview: (review) => axios.post(`${API_URL}/reviews`, review),
  deleteReview: (reviewId) => axios.delete(`${API_URL}/reviews/${reviewId}`),

  // 公告管理 API
  getAnnouncements: () => axios.get(`${API_URL}/announcements`),
  updateAnnouncements: (announcementsId) => axios.get(`${API_URL}/announcements/${announcementsId}`),
  addAnnouncement: (announcement) => axios.post(`${API_URL}/announcements`, announcement),

  // 购物车管理 API
  getCart: (userId) => axios.get(`${API_URL}/carts/${userId}`),
  addCartItem: (userId, item) => axios.post(`${API_URL}/carts/${userId}`, item),
  updateCartItem: (userId, itemId, item) => axios.put(`${API_URL}/carts/${userId}/${itemId}`, item),
  deleteCartItem: (userId, itemId) => axios.delete(`${API_URL}/carts/${userId}/${itemId}`),

  // 收货地址管理 API
  getAddresses: (userId) => axios.get(`${API_URL}/addresses/users/${userId}`),
  addAddress: (userId, address) => axios.post(`${API_URL}/addresses/users/${userId}`, address),
  updateAddress: (addressId, address) => axios.put(`${API_URL}/addresses/${addressId}/users/${userId}`, address),
  deleteAddress: (addressId) => axios.delete(`${API_URL}/addresses/${addressId}/users/${userId}`),

  getSearchBooks: (search) => axios.get(`${API_URL}/books/search?search=${search}`),
};
/* // 导入axios库，用于发起HTTP请求
import axios from 'axios';

// 定义API的基础URL
const API_URL = 'http://localhost:8080/api';

// 导出一个包含各种API调用的对象
export default {
  // 注册新用户
  // user: 用户对象，包含注册信息
  // 返回一个Promise，解析为注册操作的结果
  registerUser: (user) => axios.post(`${API_URL}/users/register`, user),
  
  // 用户登录
  // credentials: 包含登录凭据的对象
  // 返回一个Promise，解析为登录操作的结果
  loginUser: (credentials) => axios.post(`${API_URL}/users/login`, credentials),
  
  // 获取用户信息
  // userId: 用户ID
  // 返回一个Promise，解析为用户信息
  getUserInfo: (userId) => axios.get(`${API_URL}/users/${userId}`),
  
  // 更新用户信息
  // userId: 用户ID
  // user: 包含更新后用户信息的对象
  // 返回一个Promise，解析为更新操作的结果
  updateUser: (userId, user) => axios.put(`${API_URL}/users/${userId}`, user),
  
  // 删除用户
  // userId: 用户ID
  // 返回一个Promise，解析为删除操作的结果
  deleteUser: (userId) => axios.delete(`${API_URL}/users/${userId}`),
  
  // 创建新订单
  // order: 包含订单信息的对象
  // 返回一个Promise，解析为创建操作的结果
  createOrder: (order) => axios.post(`${API_URL}/orders`, order),
  
  // 获取订单列表
  // userId: 用户ID，用于过滤订单
  // 返回一个Promise，解析为订单列表
  getOrders: (userId) => axios.get(`${API_URL}/orders?userId=${userId}`),
  
  // 获取特定订单的信息
  // orderId: 订单ID
  // 返回一个Promise，解析为订单信息
  getOrder: (orderId) => axios.get(`${API_URL}/orders/${orderId}`),
  
  // 更新订单状态
  // orderId: 订单ID
  // newStatus: 新的订单状态
  // 返回一个Promise，解析为更新操作的结果
  updateOrderStatus: (orderId, newStatus) => axios.put(`${API_URL}/orders/${orderId}/status`, { newStatus }),
  
  // 删除订单
  // orderId: 订单ID
  // 返回一个Promise，解析为删除操作的结果
  deleteOrder: (orderId) => axios.delete(`${API_URL}/orders/${orderId}`),
  
  // 获取书籍列表
  // params: 查询参数，用于过滤书籍
  // 返回一个Promise，解析为书籍列表
  getBooks: (params) => axios.get(`${API_URL}/books`, { params }),
  
  // 获取特定书籍的信息
  // bookId: 书籍ID
  // 返回一个Promise，解析为书籍信息
  getBook: (bookId) => axios.get(`${API_URL}/books/${bookId}`),
  
  // 添加新书籍
  // book: 包含新书籍信息的对象
  // 返回一个Promise，解析为添加操作的结果
  addBook: (book) => axios.post(`${API_URL}/books`, book),
  
  // 更新书籍信息
  // bookId: 书籍ID
  // book: 包含更新后书籍信息的对象
  // 返回一个Promise，解析为更新操作的结果
  updateBook: (bookId, book) => axios.put(`${API_URL}/books/${bookId}`, book),
  
  // 删除书籍
  // bookId: 书籍ID
  // 返回一个Promise，解析为删除操作的结果
  deleteBook: (bookId) => axios.delete(`${API_URL}/books/${bookId}`),
  
  // 获取所有商品分类
  // 返回一个Promise，解析为分类列表
  getCategories: () => axios.get(`${API_URL}/categories`),
  
  // 获取特定分类的信息
  // categoryId: 分类ID
  // 返回一个Promise，解析为分类信息
  getCategory: (categoryId) => axios.get(`${API_URL}/categories/${categoryId}`),
  
  // 添加新分类
  // category: 包含新分类信息的对象
  // 返回一个Promise，解析为添加操作的结果
  addCategory: (category) => axios.post(`${API_URL}/categories`, category),
  
  // 更新分类信息
  // categoryId: 分类ID
  // category: 包含更新后分类信息的对象
  // 返回一个Promise，解析为更新操作的结果
  updateCategory: (categoryId, category) => axios.put(`${API_URL}/categories/${categoryId}`, category),
  
  // 删除分类
  // categoryId: 分类ID
  // 返回一个Promise，解析为删除操作的结果
  deleteCategory: (categoryId) => axios.delete(`${API_URL}/categories/${categoryId}`),
  
  // 获取所有轮播图
  // 返回一个Promise，解析为轮播图列表
  getSliders: () => axios.get(`${API_URL}/sliders`),
  
  // 添加新轮播图
  // slider: 包含新轮播图信息的对象
  // 返回一个Promise，解析为添加操作的结果
  addSlider: (slider) => axios.post(`${API_URL}/sliders`, slider),
  
  // 更新轮播图信息
  // sliderId: 轮播图ID
  // slider: 包含更新后轮播图信息的对象
  // 返回一个Promise，解析为更新操作的结果
  updateSlider: (sliderId, slider) => axios.put(`${API_URL}/sliders/${sliderId}`, slider),
  
  // 删除轮播图
  // sliderId: 轮播图ID
  // 返回一个Promise，解析为删除操作的结果
  deleteSlider: (sliderId) => axios.delete(`${API_URL}/sliders/${sliderId}`),
  
  // 获取特定书籍的评论列表
  // bookId: 书籍ID
  // 返回一个Promise，解析为评论列表
  getReviews: (bookId) => axios.get(`${API_URL}/books/${bookId}/reviews`),
  
  // 添加新评论
  // review: 包含新评论信息的对象
  // 返回一个Promise，解析为添加操作的结果
  addReview: (review) => axios.post(`${API_URL}/reviews`, review),
  
  // 更新评论信息
  // reviewId: 评论ID
  // review: 包含更新后评论信息的对象
  // 返回一个Promise，解析为更新操作的结果
  updateReview: (reviewId, review) => axios.put(`${API_URL}/reviews/${reviewId}`, review),
  
  // 删除评论
  // reviewId: 评论ID
  // 返回一个Promise，解析为删除操作的结果
  deleteReview: (reviewId) => axios.delete(`${API_URL}/reviews/${reviewId}`),
  
  // 获取所有公告
  // 返回一个Promise，解析为公告列表
  getAnnouncements: () => axios.get(`${API_URL}/announcements`),
  
  // 添加新公告
  // announcement: 包含新公告信息的对象
  // 返回一个Promise，解析为添加操作的结果
  addAnnouncement: (announcement) => axios.post(`${API_URL}/announcements`, announcement),
  
  // 获取用户购物车信息
  // userId: 用户ID
  // 返回一个Promise，解析为购物车信息
  getCart: (userId) => axios.get(`${API_URL}/carts/${userId}`),
  
  // 向购物车添加商品
  // userId: 用户ID
  // item: 包含商品信息的对象
  // 返回一个Promise，解析为添加操作的结果
  addCartItem: (userId, item) => axios.post(`${API_URL}/carts/${userId}`, item),
  
  // 更新购物车中商品的信息
  // userId: 用户ID
  // itemId: 商品ID
  // item: 包含更新后商品信息的对象
  // 返回一个Promise，解析为更新操作的结果
  updateCartItem: (userId, itemId, item) => axios.put(`${API_URL}/carts/${userId}/${itemId}`, item),
  
  // 从购物车删除商品
  // userId: 用户ID
  // itemId: 商品ID
  // 返回一个Promise，解析为删除操作的结果
  deleteCartItem: (userId, itemId) => axios.delete(`${API_URL}/carts/${userId}/${itemId}`),
  
  // 获取用户的收货地址列表
  // userId: 用户ID
  // 返回一个Promise，解析为地址列表
  getAddresses: (userId) => axios.get(`${API_URL}/addresses/${userId}`),
  
  // 添加新收货地址
  // userId: 用户ID
  // address: 包含新地址信息的对象
  // 返回一个Promise，解析为添加操作的结果
  addAddress: (userId, address) => axios.post(`${API_URL}/addresses/${userId}`, address),
  
  // 更新收货地址信息
  // addressId: 地址ID
  // address: 包含更新后地址信息的对象
  // 返回一个Promise，解析为更新操作的结果
  updateAddress: (addressId, address) => axios.put(`${API_URL}/addresses/${addressId}`, address),
  
  // 删除收货地址
  // addressId: 地址ID
  // 返回一个Promise，解析为删除操作的结果
  deleteAddress: (addressId) => axios.delete(`${API_URL}/addresses/${addressId}`),
}; */